package com.zs.propertymanage.mapper;

import com.zs.propertymanage.dataObj.entity.Tenant;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface TenantMapper {

    /**
     * 获取所有普通租户信息的列表
     *
     * @return 所有普通租户信息的列表
     */
    List<Tenant> getAllTenantWithPlain();

    /**
     * 根据条件获取租户信息的列表
     *
     * @param search   搜索条件
     * @param start    分页起始位置
     * @param pageSize 分页大小
     * @return 符合条件的租户信息的列表
     */
    List<Tenant> getAllTenantWithCondition(String search, Integer start, Integer pageSize);

    /**
     * 根据条件获取租户数量
     *
     * @param search   搜索条件
     * @param start    分页起始位置
     * @param pageSize 分页大小
     * @return 符合条件的租户数量
     */
    Integer getCountWithCondition(String search, Integer start, Integer pageSize);

    /**
     * 添加租户
     *
     * @param tenant 需要添加的租户信息
     * @return 添加成功后的租户ID
     */
    Integer addTenant(Tenant tenant);

    /**
     * 更新租户信息
     *
     * @param tenant 需要更新的租户信息
     * @return 更新结果，更新成功为1，更新失败为-1
     */
    int updateTenant(Tenant tenant);

    /**
     * 根据ID删除租户
     *
     * @param id 需要删除的租户ID
     * @return 删除结果，删除成功为1，删除失败为-1
     */
    int deleteTenantById(String id);

    /**
     * 根据ID获取租户
     *
     * @param tenantId 租户ID
     * @return 租户
     */
    Tenant getTenantById(String tenantId);

    Integer getTotal();
}
